# React Suspense 🔀

<EpicVideo url="https://www.epicreact.dev/workshops/react-suspense/react-suspense-intro" />

👨‍💼 Hello, my name is Peter the Product Manager. I'm here to help you get
oriented and to give you your assignments for the workshop!

We're going to be learning about all things asynchronous with React. In web
applications, there's much you need to concern yourself with when it comes to
asynchronous behavior. Primarily we'll be focusing on data fetching and assets
like images, but you can apply this to any asynchronous behavior in your
application (like requesting geolocation or webcam permissions).

The core of everything we'll be doing revolves around the
[`Suspense`](https://react.dev/reference/react/Suspense) component and the
[`use`](https://react.dev/reference/react/use) hook (we'll build our own
version of this to really get how it works). The `Suspense` component
enables you to declaratively tell React what to render while waiting for
something to load. The `use` hook enables you to convert something async (a
promise) into the resolved value.

And of course, there's `ErrorBoundary` which is a component that you can use to
catch errors in your application and display a fallback UI. We'll be following
the React team's recommendation and using
[`react-error-boundary`](https://npm.im/react-error-boundary) for this.

Under the hood, React will make this work and you'll learn all about how in this
workshop.

Let's get going!

🎵 Check out the workshop theme song! 🎶

<VideoEmbed
	title="Epic React: React Suspense Theme Song"
	url="https://www.youtube.com/embed/mYX65QSSxYE?list=PLV5CVI1eNcJieZkL_q7M48PwEpeNT-sL1&rel=0"
/>
